home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr26 / netprog.zip / NETPROG.TAR / net / unixdgserv.c < prev    next >
C/C++ Source or Header  |  1989-12-17  |  908b  |  39 lines

  1. /*
  2.  * Example of server using UNIX domain datagram protocol.
  3.  */
  4.  
  5. #include    "unix.h"
  6.  
  7. main(argc, argv)
  8. int    argc;
  9. char    *argv[];
  10. {
  11.     int            sockfd, servlen;
  12.     struct sockaddr_un    serv_addr, cli_addr;
  13.  
  14.     pname = argv[0];
  15.  
  16.     /*
  17.      * Open a socket (a UNIX domain datagram socket).
  18.      */
  19.  
  20.     if ( (sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
  21.         err_dump("server: can't open datagram socket");
  22.  
  23.     /*
  24.      * Bind our local address so that the client can send to us.
  25.      */
  26.  
  27.     unlink(UNIXDG_PATH);    /* in case it was left from last time */
  28.     bzero((char *) &serv_addr, sizeof(serv_addr));
  29.     serv_addr.sun_family = AF_UNIX;
  30.     strcpy(serv_addr.sun_path, UNIXDG_PATH);
  31.     servlen = sizeof(serv_addr.sun_family) + strlen(serv_addr.sun_path);
  32.  
  33.     if (bind(sockfd, (struct sockaddr *) &serv_addr, servlen) < 0)
  34.         err_dump("server: can't bind local address");
  35.  
  36.     dg_echo(sockfd, (struct sockaddr *) &cli_addr, sizeof(cli_addr));
  37.         /* NOTREACHED */
  38. }
  39.